With advances in processing capabilities and programming technologies, software defined mobile wireless communications devices (e.g., radios) continue to increase in popularity. Rather than relying upon hardware and circuitry components to perform frequency, modulation, bandwidth, security, and/or waveform functions, these functions are instead performed by software modules or components in a software radio. That is, with a software radio analog signals are converted into the digital domain where the above-noted functions are performed using digital signal processing based upon software modules.
Because most of the functions of the radio are controlled by software, software radios may typically be implemented with relatively standard processor and hardware components. This may not only reduce device hardware costs, but it also provides greater flexibility in upgrading the device since new communications waveform modules can be uploaded to the device relatively easily and without the need to interchange new hardware components.
One particular class of software radios which takes advantage of the above-described advantages is the Joint Tactical Radio (JTR). The JTR includes relatively standard radio and processing hardware along with the appropriate waveform software modules for the communication waveforms the radio will utilize. JTRs also utilize operating system software that conforms with the Software Communications Architecture (SCA). The SCA is an open architecture framework that specifies how hardware and software components are to interoperate so that different manufacturers and developers can readily integrate their respective components into a single device.
Still another class of mobile wireless communications devices that increasingly use software components for communicating via different waveforms or standards is cellular communication devices. That is, many cellular devices are now designed to operate with more than one of the numerous cellular standards that are used throughout the world, such as the Global System for Mobile Communications (GSM) and Personal Communications Services (PCS), for example.
Despite the numerous advantages of software radios, one challenge presented by such devices is that of verifying that the software components being installed on the device are from a trusted or authentic source. Moreover, once installed, it may also be important to verify that the software has not been altered by malicious viruses, worms, or other means that may compromise the security of the device. While this is particularly important in personal communications devices such as personal digital assistants (PDAs) that may include sensitive financial and personal information, it is especially important in devices such as JTRs that may be used to transmit classified or highly sensitive data.
Various approaches have been developed in an attempt to ensure the integrity of software installed on a computing device. One such example is disclosed in U.S. Patent Publication No. 2005/0216907 to Dive-Reclus directed to a mobile wireless device operable to install code on a removable medium, in which the device is programmed to calculate and store a digest of the code into a persistent non-removable store inside the device. When the removable medium is plugged back into the device and the code is invoked, the device recalculates a digest from the code to be loaded from the removable medium and compares it with the digest stored inside the persistent non-removable store. If they do not match, the code is deemed to have been tampered with and not trustworthy. The digest may be a hash value or other unique value.
Still another approach is set for in U.S. Pat. No. 6,708,274 to Herbert et al. This patent discloses a method and system for maintaining integrity and confidentiality of pages paged to an external storage unit from a physically secure environment. When an outgoing page is exported from a physically secure environment to an insecure environment, an integrity check value is generated and stored for the outgoing page. In one embodiment, this is done by taking a one-way hash of the page using a one-way hash function. The outgoing page is then encrypted using an encryption algorithm. The encrypted outgoing page is then exported to the external storage unit.
Despite the benefits of such approaches, further improvements and functionality may be desirable for installing and verifying software components or files on mobile wireless communications devices.